package br.gov.ibama.client.componentes;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import com.smartgwt.client.widgets.form.fields.FormItem;
import com.smartgwt.client.widgets.form.fields.SectionItem;

public class SecaoItens {

	private List<FormItem> formItems = new ArrayList<FormItem>();
	private List<String> itemsId = new ArrayList<String>();
	private SectionItem secao = new SectionItem();
	private boolean fechado = false;

	public SecaoItens(String nome, String titulo) {
		this(nome, titulo, false);
	}

	public SecaoItens(String nome, String titulo, boolean aberta) {
		secao.setName(nome);
		secao.setTitle(titulo);
		secao.setValue(titulo);
		secao.setSectionExpanded(aberta);
	}

	public SecaoItens adicionaItem(FormItem item) {
		if (fechado) {
			throw new IllegalStateException("A lista de itens ja foi fechada!");
		}
		formItems.add(item);
		itemsId.add(item.getName());
		return this;
	}

	public List<FormItem> getFormItems() {
		return Collections.unmodifiableList(formItems);
	}

	public SectionItem getSecao() {
		return secao;
	}

	public SecaoItens fecha() {
		secao.setItemIds(itemsId.toArray(new String[itemsId.size()]));
		return this;
	}

}
